home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / tls / tls089.ibmaix.Z / tls089.ibmaix / lib / vtcl / tests / focus4.tcl < prev    next >
Encoding:
Text File  |  1995-07-20  |  3.6 KB  |  157 lines

  1. # CVS $Id: focus4.tcl,v 1.3 1995/02/03 16:54:41 zibi Exp $
  2. #!/bin/wstcl
  3.  
  4. # SCCS ID: @(#)nwauthenticate.tcl    1.2  16:26:11 - 1.2
  5. #
  6. # Script to authenticate to a Netware Server.
  7. #
  8. # usage: nw_authenticate.tcl netware_server_name unix_userid
  9.  
  10. proc LoginCB {cbs} {
  11.     global loginid server loginwidget passwordt
  12.  
  13.     set loginid [VtGetValues $loginwidget -value ]
  14.     if { [string length $loginid] == 0 } then {
  15.         set msg [VtMessageDialog loginError \
  16.             -message "You must specify a valid Login ID for Netware Server $server" \
  17.             -ok ]
  18.                 VtShowDialog $msg
  19.         VtSetFocus $loginwidget
  20.         return
  21.     }
  22.     VtSetFocus $passwordt
  23. }
  24.  
  25. proc PasswordCB {cbs} {
  26.     global loginid password passwordt
  27.     set password [VtGetValues $passwordt -value]
  28.  
  29.     if { [string length $password] == 0 } then {
  30.         if { [string length $loginid] != 0 } then {
  31.             set msg [VtMessageDialog loginError \
  32.                 -message "You must specify a valid Password for Login ID '$loginid'" \
  33.                 -ok]
  34.                         VtShowDialog $msg
  35.             VtSetFocus $passwordt
  36.             return
  37.         }
  38.     }
  39. }
  40.  
  41. proc CancelCB {cbs} {
  42.     VtClose
  43.     exit
  44. }
  45.  
  46.  
  47. proc AuthOKCB { cbs } {
  48.     VtClose
  49.     exit
  50. }
  51.  
  52. proc ApplyCB {cbs} {
  53.     global server loginid password loginwidget passwordt
  54.  
  55.         set authenticator "nwlogin"
  56.         #set authenticator "echo"
  57.  
  58.  
  59.     set loginid [VtGetValues $loginwidget -value ]
  60.     if { [string length $loginid] == 0 } then {
  61.         set msg [VtMessageDialog loginError \
  62.             -message "You must specify a valid Login ID for Netware Server $server" \
  63.             -ok]
  64.                 VtShowDialog $msg
  65.         VtSetFocus $loginwidget
  66.         return
  67.     }
  68.  
  69.     if { [string length $password] == 0 } then {
  70.         set msg [VtMessageDialog loginError \
  71.             -message "You must specify the Password for $loginid on Netware Server $server" \
  72.             -ok]
  73.                 VtShow $msg
  74.         VtSetFocus $passwordt
  75.         return
  76.     }
  77.  
  78.     if { [ catch {exec /bin/sh -c \
  79.             "echo $password | $authenticator $server/$loginid >/dev/null \
  80.                 2>/tmp/nwauth.1" } error ]  } \
  81.         {
  82.         set msg [VtMessageDialog execError \
  83.             -message "Unable to authenticate\n $error" \
  84.             -ok]
  85.                 VtShow $msg
  86.                 return
  87.         }
  88.         
  89.     if { [file exists /tmp/nwauth.1 ] && [file size /tmp/nwauth.1] } then {
  90.         set msg [exec /bin/sh -c "cat /tmp/nwauth.1"]
  91.         set errb [VtErrorBox nwloginError -message "$msg" -ok]
  92.                 VtShowDialog $errb
  93.         return
  94.     }
  95.         
  96.         set msg [ VtMessageDialog okauth \
  97.                     -message "$server/$loginid Authenticated" \
  98.                     -ok -okCallback AuthOKCB ]
  99.         VtShowDialog $msg
  100. }
  101.  
  102. # usage: nw_authenticate server_name user_id
  103. global server userid loginid password
  104.  
  105. set server "NetDefault"
  106. set userid "anon"
  107. if { $argc > 0 } \
  108. {  
  109.     set server "[lindex $argv 0]" 
  110. }
  111.  
  112. if { $argc > 1 } \
  113.     set userid "[lindex $argv 1]"
  114. }
  115.  
  116. set loginid $userid
  117. set password {}
  118.  
  119. set app [VtOpen "Netware Server Authentication"]
  120. set form1 [VtFormDialog $app.form1 -cancelCallback CancelCB \
  121.         -title "NetWare Authent" \
  122.     -applyCallback ApplyCB]
  123.  
  124. set srvrl [VtLabel $form1.srvr \
  125.     -label "Authenticating user $userid to Netware Server $server"]
  126. set logint [VtText $form1.loginwidget \
  127.     -rows 1 \
  128.     -columns 20 \
  129.     -callback LoginCB \
  130.     -topSide $srvrl \
  131.     -leftSide NONE \
  132.     -alignRight $srvrl]
  133. set loginwidget $logint
  134.  
  135. set logintl [VtLabel $form1.logintl \
  136.     -label "$server Login:" \
  137.     -topSide $srvrl \
  138.     -rightSide $logint]
  139. set passwordt [VtText $form1.passwordwidget \
  140.     -rows 1 \
  141.     -columns 20 \
  142.     -noEcho \
  143.     -callback PasswordCB \
  144.     -topSide $logint \
  145.     -leftSide NONE \
  146.     -alignRight $logint]
  147. set passwordtl [VtLabel $form1.passwordtl \
  148.     -label "Password:" \
  149.     -topSide $logintl \
  150.     -rightSide $passwordt]
  151. VtSetValues $logint -value $userid
  152. VtSetFocus $logint
  153.  
  154. VtShow $form1
  155. VtMainLoop
  156.